import { IPSSysSFPubPkg } from './ipssys-sfpub-pkg';
import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * @export
 * @interface IPSSysSFPub
 */
export interface IPSSysSFPub extends IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 发布内容模式
   * @description 值模式 [系统后台体系发布内容类型] {CODE：运行代码、 DOC：文档 }
   * @type {( string | 'CODE' | 'DOC')}
   */
  contentType: string | 'CODE' | 'DOC';

  /**
   * 默认发布
   * @type {boolean}
   */
  defaultFlag: boolean;

  /**
   * Groovy源代码目录
   * @type {string}
   */
  groovySourceFolder: string;

  /**
   * 模型目录
   * @type {string}
   */
  modelFolder: string;

  /**
   * 代码包名
   * @type {string}
   */
  pKGCodeName: string;

  /**
   * 后台发布组件包集合
   *
   * @type {IPSSysSFPubPkg[]}
   */
  getPSSysSFPubPkgs(): IPSSysSFPubPkg[] | null;

  /**
   * 后台发布组件包集合
   *
   * @type {IPSSysSFPubPkg[]}
   */
  get psSysSFPubPkgs(): IPSSysSFPubPkg[] | null;

  findPSSysSFPubPkg(objKey: any): IPSSysSFPubPkg | null;

  /**
   * 默认脚本引擎
   * @type {string}
   */
  scriptEngine: string;

  /**
   * 组件版本
   * @type {string}
   */
  versionString: string;

  /**
   * 发布代码模式
   * @type {boolean}
   * @default false
   */
  codeMode: boolean;

  /**
   * 发布文档模式
   * @type {boolean}
   * @default false
   */
  docMode: boolean;

  /**
   * 启用模型运行时
   * @type {boolean}
   * @default false
   */
  enableModelRT: boolean;

  /**
   * 主后台体系
   * @type {boolean}
   * @default false
   */
  mainPSSysSFPub: boolean;

  /**
   * 发布模型
   * @type {boolean}
   * @default false
   */
  pubModel: boolean;

  /**
   * 输出子系统组件包
   * @type {boolean}
   * @default false
   */
  subSysPackage: boolean;

  /**
   * 发布测试代码模式
   * @type {boolean}
   * @default false
   */
  testCodeMode: boolean;
}
